/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package socafeclient;

import entity.Comandaproducto;
import entity.Mesas;
import entity.Usuarios;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author alberto
 */
public class TableModelViewPedidos extends AbstractTableModel{
    private ArrayList datalist = new ArrayList();
    private String[] columns = {"Comanda", "Mesa", "Mesero", "Cantidad", "Producto"};
    

    @Override
    public int getRowCount() {
        return datalist.size();
    }

    @Override
    public int getColumnCount() {
        return columns.length;
    }

    @Override
    public Object getValueAt(int row, int col) {
       Comandaproducto c = (Comandaproducto) datalist.get(row);        
       switch (col) {
            case 0: //Comanda
                return c.getComanda().getIdcomanda();
            case 1: //Mesa
                return c.getComanda().getIdmesa().getIdmesa();
            case 2: //Mesero
                return c.getComanda().getIdusuario().getNombre();
            case 3: //Cantidad                
                return c.getCantidad();
            case 4: //Producto                                        
                return c.getProductos().getNombre();
            default:
                return false;
       }
               
    }

    public Comandaproducto getComandaproductoAt(int row) {
        return (Comandaproducto) datalist.get(row);
    }

    public Comandaproducto removeComandaproductoAt(int row) {
        Comandaproducto cp = (Comandaproducto) datalist.remove(row);
        fireTableDataChanged();
        return cp;
        
    }

    public void addComandaproducto(Comandaproducto c) {
        datalist.add(c);
        fireTableDataChanged();
    }

    public void addComandaproductoList(List l, boolean limpiar) {
        if (limpiar) {
            datalist.clear();           
        }        
        
        Iterator iterador = l.listIterator();        
        
        while(iterador.hasNext()){
            Comandaproducto c = (Comandaproducto) iterador.next();                                          
            datalist.add(c);            
        }        
        
        fireTableDataChanged();
    }

    public TableModelViewPedidos(List l) {
        Iterator iterador = l.listIterator();        
        while(iterador.hasNext()){
            Comandaproducto c = (Comandaproducto) iterador.next();            
            datalist.add(c);
        }        
    }
    
    
    public TableModelViewPedidos() {
       
    }

    @Override
    public String getColumnName(int i) {
        return columns[i];
    }

    @Override
    public boolean isCellEditable(int row, int col) {
        switch (col) {
            case 0: //idComanda
                return false;
            case 1: //Mesa
                return false;
            case 2: //Mesero
                return false;
            case 3: //FechaCreacion
                return false;
            case 4: //Importe
                return false;
            default:
                return false;
        }
    }

    @Override
    public Class getColumnClass(int col) {
        switch (col) {
            case 0: //Comanda
                return Integer.class;
            case 1: //Mesa
                return Mesas.class;
            case 2: //Mesero
                return Usuarios.class;
            case 3: //Cantidad
                return Integer.class;
            case 4: //Producto
                return String.class;
            default:
                return null;
        }
    }

    
}
